/*
    Watchpost - A file monitor program for the GNOME desktop
    Copyright (C) 2006 Andrew Resch

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#ifndef CALLBACKS_H
#define CALLBACKS_H

#include <time.h>
#include <gtk/gtk.h>
#include <glade/glade.h>
#include <libgnomevfs/gnome-vfs.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gnome.h>

#include "watchpost.h"
#include "interface.h"

void connect_callback_signals();

/* Callback prototypes */
void on_addMonitorButton_clicked(GtkWidget *widget);
void on_fileChooserAddButton_clicked(GtkWidget *widget);
void file_info_callback(GnomeVFSAsyncHandle *handle, GList *results, gpointer user_data);
void on_helpButton_clicked(GtkWidget *widget);
void on_closeButton_clicked(GtkWidget *widget, gpointer user_data);
void on_aboutButton_clicked(GtkWidget *widget);
void on_statusIcon_activate(GtkStatusIcon *status_icon, gpointer user_data);
void on_statusIcon_popupmenu(GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data);
void on_windowState_event(GtkWidget *widget, GdkEventWindowState *event);
void on_fileChooserCancelButton_clicked(GtkWidget *widget);
gboolean on_delete_event(GtkWidget *widget);
gboolean on_filechooserdialog_delete_event(GtkWidget *widget);
void on_showmenu_event(GtkMenuItem *menuitem, gpointer user_data);
void monitor_callback(GnomeVFSMonitorHandle *handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data);
gboolean on_monitor_list_buttonpress(GtkWidget *widget, GdkEventButton *event);
gboolean on_monitor_list_popupmenu(GtkWidget *widget);
void monitor_list_show_menu(GtkWidget *widget, GdkEventButton *event);
void on_monitor_list_popup_remove(GtkWidget *widget);
void on_monitor_list_popup_clear(GtkWidget *widget);
gboolean on_results_list_buttonpress(GtkWidget *widget, GdkEventButton *event);
gboolean on_results_list_popupmenu(GtkWidget *widget);
void results_list_show_menu(GtkWidget *widget, GdkEventButton *event);
void on_results_list_popup_clear(GtkWidget *widget);
void show_popup_menu(GtkWidget *widget, GdkEventButton *event, GtkWidget *menu);
void remove_monitor(GtkTreeIter iter);
#endif
